package cn.teduymdj.jxc.service;


import cn.teduymdj.jxc.pojo.dto.CustomerReturnListAddNewDTO02;
import cn.teduymdj.jxc.pojo.dto.SelectConditionDTO;
import cn.teduymdj.jxc.pojo.dto.SelectReturnCondition;
import cn.teduymdj.jxc.pojo.entity.CustomerReturnList;
import cn.teduymdj.jxc.pojo.entity.CustomerReturnListGoods;
import cn.teduymdj.jxc.pojo.vo.CustomerReturnListGoodsListItemVO;
import cn.teduymdj.jxc.pojo.vo.CustomerReturnListListItemVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 客户退货商品service接口
 *
 */
@Transactional
public interface CustomerReturnListGoodsService {
	
	/**
	 * 保存客户退货清单，客户退货列表，修改商品属性
	 * @param customerReturnList 商品客户退货单
	 * @param customerReturnListGoodsList 商品客户退货列表
	 */
	public void save(CustomerReturnListAddNewDTO02 customerReturnListAddNewDTO02);
	
	/**
	 * 客户退货单查询
	 * @param customerReturnNumber 单号
	 * @param customerId 客户ID
	 * @param state 付款状态
	 * @param sTime 开始时间
	 * @param eTime 结束时间
	 * @return
	 */
	public List<CustomerReturnListListItemVO> getCustomerReturnlist(SelectConditionDTO selectConditionDTO);
	
	/**
	 * 根据客户退货单ID查询客户退货商品信息
	 * @param customerReturnListId 客户退货单ID
	 * @return
	 */
	public List<CustomerReturnListGoodsListItemVO> getCustomerReturnListGoodsByCustomerReturnListId(Long customerReturnListId);
	
	/**
	 * 删除客户退货单及客户退货单商品信息
	 * @param customerReturnListId 客户退货单ID
	 */
	public void delete(Long customerReturnListId);
	
	/**
	 * 根据客户退货单ID查询客户退货单信息
	 * @param customerReturnListId 客户退货单ID
	 * @return
	 */
	public CustomerReturnList getCustomerReturnList(Long customerReturnListId);
	
	/**
	 * 根据商品ID查询客户退货商品数量
	 * @param goodsId 商品ID
	 * @return
	 */
	public Integer getCustomerReturnTotalByGoodsId(Long goodsId);
	


	/**
	 * 修改进货单付款状态为已支付
	 *
	 * @param id 进货单ID
	 * @return
	 */
	void setPaid(Long id);
	/**
	 * 修改进货单付款状态为未支付
	 *
	 * @param id 进货单ID
	 * @return
	 */
	void setUnpaid(Long id);

	List<CustomerReturnListGoodsListItemVO> getCustomerReturnListGoods(
			SelectReturnCondition selectReturnCondition);


}
